@page "/docio/insert-ole-object"
@inject Microsoft.JSInterop.IJSRuntime JS
@using System.IO
@using Syncfusion.Blazor.Buttons
@using BlazorDemos.Data.FileFormats.DocIO
@inject Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnvironment
@inherits SampleBaseComponent;

<SampleDescription>
    <p style="font-size:16px">This sample demonstrates how to insert OLE Object into the Word document using Essential DocIO.</p>
</SampleDescription>
<ActionDescription>
    <p style="font-size:16px">With DocIO, you can insert an OLE Object as either link or embed into the Word document. You can extract the OLE Object data from the Word document and save as native file.</p>
    <p style="font-size:16px">More information about the OLE Objects can be found on this <a href="https://help.syncfusion.com/file-formats/docio/working-with-paragraph#appending-ole-objects">documentation</a> section.</p>
</ActionDescription>

<div class="control-section">
    <p style="font-size:16px">Click the button to view the generated Word document. Please note that Microsoft Word Viewer or Microsoft Word is required to view the resultant Word document.</p>

    <table>
        <tr>
            <td>
                <h5 class="row" style="font-size:16px">Save As:</h5>
            </td>
            <td>
                <div class="col-xs-12 col-sm-12 col-lg-1 col-md-6">
                    <SfRadioButton Label="DOC" Name="DOC" Value=@("DOC") @bind-Checked="@documentType"></SfRadioButton>
                </div>
            </td>
            <td>
                <div class="col-xs-12 col-sm-12 col-lg-1 col-md-6">
                    <SfRadioButton Label="DOCX" Name="DOCX" Value=@("DOCX") @bind-Checked="@documentType"></SfRadioButton>
                </div>
            </td>
            <td>
                <div class="col-xs-12 col-sm-12 col-lg-1 col-md-6">
                    <SfRadioButton Label="WordML" Name="WordML" Value=@("WordML") @bind-Checked="@documentType"></SfRadioButton>
                </div>
            </td>
        </tr>
        <tr>
            <td colspan="4">
                <div class="button-section">
                    <div id="button-control">
                        <div class="row">
                            <div>
                                <SfButton @onclick="GenerateDocument">Generate Document</SfButton>
                            </div>
                        </div>
                    </div>
                </div>
            </td>
        </tr>
    </table>

</div>

<style>
  

    .control-section .row {
        margin: 10px 0;
    }
</style>

@code {
    MemoryStream documentStream;
    string documentType = "DOCX";

    /// <summary>
    /// Create and download the simple Word document
    /// </summary>
    public async Task GenerateDocument(MouseEventArgs args)
    {
        InsertOLEObjectService service = new InsertOLEObjectService(hostingEnvironment);
        documentStream = service.InsertOLEObject(documentType);
        if (documentType == "DOC")
            await JS.SaveAs("Sample.doc", documentStream.ToArray());
        else if (documentType == "WordML")
            await JS.SaveAs("Sample.xml", documentStream.ToArray());
        else
            await JS.SaveAs("Sample.docx", documentStream.ToArray());
    }
}